home *** CD-ROM | disk | FTP | other *** search
/ Cre@te Online 2000 December / Cre@teOnline CD05.iso / MacSoft / XML Instance.sea / XML Instance / Required / plugins / HTMLWindow.jar / horst / ContextChecker.class (.txt) < prev    next >
Encoding:
Java Class File  |  2000-03-18  |  3.0 KB  |  198 lines

  1. package horst;
  2.  
  3. import java.util.Stack;
  4. import java.util.Vector;
  5.  
  6. public class ContextChecker {
  7.    public static final int VALID = 0;
  8.    public static final int IGNORE = 1;
  9.  
  10.    static int checkContext(Element e, TagStack tagStack, Stack characterStack) {
  11.       switch (e.getType()) {
  12.          case 3:
  13.             return method_5(e, tagStack, characterStack);
  14.          case 4:
  15.          case 5:
  16.             return method_4(e, tagStack);
  17.          case 6:
  18.             return method_3(e, tagStack);
  19.          case 25:
  20.             return method_1(e, tagStack);
  21.          case 26:
  22.             return method_0(e, tagStack);
  23.          case 27:
  24.             return method_2(e, tagStack);
  25.          default:
  26.             return 0;
  27.       }
  28.    }
  29.  
  30.    // $FF: renamed from: dd (horst.Element, horst.TagStack) int
  31.    private static int method_0(Element e, TagStack tagStack) {
  32.       if (((Stack)tagStack).empty()) {
  33.          return 0;
  34.       } else {
  35.          Element stackElem = (Element)((Stack)tagStack).peek();
  36.          if (stackElem.getType() == 25) {
  37.             return 0;
  38.          } else {
  39.             Element dlElem = tagStack.getElementType(24);
  40.             if (dlElem != null) {
  41.                tagStack.popToElement(dlElem);
  42.                return 0;
  43.             } else {
  44.                return 1;
  45.             }
  46.          }
  47.       }
  48.    }
  49.  
  50.    // $FF: renamed from: dt (horst.Element, horst.TagStack) int
  51.    private static int method_1(Element e, TagStack tagStack) {
  52.       if (((Stack)tagStack).empty()) {
  53.          return 1;
  54.       } else {
  55.          Element stackElem = (Element)((Stack)tagStack).peek();
  56.          if (stackElem.getType() == 24) {
  57.             return 0;
  58.          } else {
  59.             Element dlElem = tagStack.getElementType(24);
  60.             if (dlElem != null) {
  61.                tagStack.popToElement(dlElem);
  62.                return 0;
  63.             } else {
  64.                return 1;
  65.             }
  66.          }
  67.       }
  68.    }
  69.  
  70.    // $FF: renamed from: li (horst.Element, horst.TagStack) int
  71.    private static int method_2(Element e, TagStack tagStack) {
  72.       if (!((Stack)tagStack).empty()) {
  73.          Element stackElem = (Element)((Stack)tagStack).peek();
  74.          if (stackElem.getType() == 22 || stackElem.getType() == 79 || stackElem.getType() == 61 || stackElem.getType() == 23) {
  75.             return 0;
  76.          }
  77.       }
  78.  
  79.       int[] types = new int[3];
  80.       types[0] = 23;
  81.       types[1] = 22;
  82.       types[2] = 61;
  83.       Element targetElem = tagStack.getFirstElementType(types);
  84.       if (targetElem != null) {
  85.          tagStack.popToElement(targetElem);
  86.       } else {
  87.          targetElem = tagStack.getElementType(27);
  88.          if (targetElem != null) {
  89.             tagStack.popElement(targetElem);
  90.          }
  91.       }
  92.  
  93.       return 0;
  94.    }
  95.  
  96.    // $FF: renamed from: p (horst.Element, horst.TagStack) int
  97.    private static int method_3(Element e, TagStack tagStack) {
  98.       if (!((Stack)tagStack).empty()) {
  99.          Element stackElem = (Element)((Stack)tagStack).peek();
  100.          if (stackElem.getType() == 6) {
  101.             while(stackElem.getType() == 6) {
  102.                tagStack.pop();
  103.                if (!((Stack)tagStack).empty()) {
  104.                   stackElem = (Element)((Stack)tagStack).peek();
  105.                }
  106.             }
  107.  
  108.             return 0;
  109.          }
  110.  
  111.          if (stackElem.getType() == 2) {
  112.             Element row = new Element(3);
  113.             stackElem.addChild(row);
  114.             ((Stack)tagStack).push(row);
  115.             return 0;
  116.          }
  117.       }
  118.  
  119.       return 0;
  120.    }
  121.  
  122.    // $FF: renamed from: td (horst.Element, horst.TagStack) int
  123.    private static int method_4(Element e, TagStack tagStack) {
  124.       if (((Stack)tagStack).empty()) {
  125.          return 1;
  126.       } else {
  127.          Element stackElem = (Element)((Stack)tagStack).peek();
  128.          if (stackElem.getType() == 3) {
  129.             return 0;
  130.          } else if (stackElem.getType() == 2) {
  131.             Element row = new Element(3);
  132.             stackElem.addChild(row);
  133.             ((Stack)tagStack).push(row);
  134.             return 0;
  135.          } else {
  136.             Element trElem = tagStack.getElementType(3);
  137.             if (trElem != null) {
  138.                tagStack.popToElement(trElem);
  139.                return 0;
  140.             } else {
  141.                return 1;
  142.             }
  143.          }
  144.       }
  145.    }
  146.  
  147.    // $FF: renamed from: tr (horst.Element, horst.TagStack, java.util.Stack) int
  148.    private static int method_5(Element e, TagStack tagStack, Stack characterStack) {
  149.       if (((Stack)tagStack).empty()) {
  150.          return 1;
  151.       } else {
  152.          Element stackElem = (Element)((Stack)tagStack).peek();
  153.          if (stackElem.getType() == 2) {
  154.             return 0;
  155.          } else {
  156.             if (stackElem.getType() == 3) {
  157.                Element row = (Element)tagStack.pop();
  158.                if (((Stack)tagStack).empty()) {
  159.                   ((Stack)tagStack).push(row);
  160.                   return 1;
  161.                }
  162.  
  163.                Element elem = (Element)((Stack)tagStack).peek();
  164.                if (elem.getType() == 2) {
  165.                   return 0;
  166.                }
  167.             } else if (stackElem.getType() != 5 && stackElem.getType() != 4) {
  168.                Element tabElem = tagStack.getElementType(2);
  169.                if (tabElem != null) {
  170.                   tagStack.popToElement(tabElem);
  171.                   return 0;
  172.                }
  173.             } else if (((Vector)tagStack).size() > 1) {
  174.                stackElem = (Element)tagStack.pop();
  175.                if (stackElem.getType() == 4 && !characterStack.empty()) {
  176.                   characterStack.pop();
  177.                }
  178.  
  179.                Element elem = (Element)((Stack)tagStack).peek();
  180.                if (elem.getType() == 3 && !((Stack)tagStack).empty()) {
  181.                   Element rowElem = (Element)tagStack.pop();
  182.                   Element possibleTable = (Element)((Stack)tagStack).peek();
  183.                   if (possibleTable.getType() == 2) {
  184.                      return 0;
  185.                   }
  186.  
  187.                   ((Stack)tagStack).push(rowElem);
  188.                }
  189.  
  190.                ((Stack)tagStack).push(stackElem);
  191.             }
  192.  
  193.             return 1;
  194.          }
  195.       }
  196.    }
  197. }
  198.